package com.kele.service.Interceptor;

import com.kele.domain.User;
import com.kele.service.ExceptHandler.Exception.theException;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 创作人 王箫凯
 * Date 2021/5/27
 * Time 16:09
 *
 * @author 王箫凯
 */
public class ManagerInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //判断是否未登录，如果否，进行拦截 要求登录
        if (request.getSession().getAttribute("User")==null) {
            response.sendRedirect(request.getContextPath()+"/to/toLogin");
            return false;
        }
        User user= (User) request.getSession().getAttribute("User");
        System.out.println(user);
        System.out.println(user.getVip());
        //如果登录成功则进行判断 ，如果是VIP2 ，则表示为管理员，可以进行访问，反之，直接拒绝
        if (user.getVip()<=1){
            throw new theException("越级访问");
        }
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }
}
